package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.domain.StrategyCatalog;
import cn.wolfcode.wolf2w.query.QueryObject;
import cn.wolfcode.wolf2w.vo.CatalogVO;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

public interface IStrategyCatalogService {
	/**
	 * 新增
	 * @param strategyCatalog
	 */
	void save(StrategyCatalog strategyCatalog);

	/**
	 * 更新
	 * @param strategyCatalog
	 */
	void update(StrategyCatalog strategyCatalog);

	/**
	 * 删除
	 * @param id
	 */
	void delete(String id);

	/**
	 * 查询单个
	 * @param id
	 * @return
	 */
	StrategyCatalog get(String id);

	/**
	 * 查询全部
	 * @return
	 */
	List<StrategyCatalog> list();

	/**
	 * 分页
	 */
	Page<StrategyCatalog> query(QueryObject qo);

	/**
	 * 自己思考,排序遍历
	 * 获取目的地-攻略分类 1:n
	 * @return
	 */
	List<Map<String,Object>> queryGroupCatalog();

	/**
	 * 老师教的,mongodb 聚合查询
	 * 获取目的地-攻略分类 1:n
	 * @return
	 */
	List<CatalogVO> groupList();

	/**
	 * 查询指定目的地的攻略分类-攻略
	 * @param destId
	 * @return
	 */
	List<StrategyCatalog> queryCatalogsByDestId(String destId);
}
